/**
 * @properties={typeid:35,uuid:"823AC822-AE42-4A75-A504-F05FB836F53E",variableType:4}
 */
var es_preview = null;

/**
 * @properties={typeid:35,uuid:"CBE6F504-3493-47DC-847F-6CD621721AA0"}
 */
var fTexto = null;

/**
 * @properties={typeid:35,uuid:"43C1F565-A519-4D76-995E-1321182CBF47",variableType:6}
 */
var total_adelanto = null;

/**
 *
 * @properties={typeid:24,uuid:"E162B271-0E8D-4F6A-8A92-B291B4DE0285"}
 */
function agregar_renglon()
{ //  dar daba alta de un renglon en op_detalle 
	op_cabecera_to_op_detalle.newRecord(false) 
	
	elements.confirmar.enabled=false; // 23/08/2010
}

/**
 *
 * @properties={typeid:24,uuid:"ACC4A3A1-D0D9-43B9-8592-15D1343F5D01"}
 */
function cancelar() 
{
	databaseManager.rollbackEditedRecords()
	//databaseManager.setAutoSave(true)
	Iniciar();
}

/**
 *
 * @properties={typeid:24,uuid:"3238C7DF-4758-4DA0-8821-4D012589A3A9"}
 */
function confirmar() 
{
elements.confirmar.enabled=false; // 14/12/2010	
 totalizar()
 if (estado==false)  // 14/12/2010   probar
	return false;   // 14/12/2010
 if (globals.gtotal_valores <= 0)
 {
	globals.gMensaje="El importe total de los valores "  + "es incorrecto"
	globals.gMensajes()
	return;  //26/08/2010
 }
var estado=validar_fecha_pago(); // 25/08/2010  para asegurar que fecha_pago de cheques no tiene null
if (estado==false)  // 25/08/2010
	return false;   // 25/08/2010

//if (((globals.gtotal_valores + globals.gtotal_retenciones) != total_adelanto))   //26/08/2010
var dife_abs=Math.abs(globals.gtotal_valores + globals.gtotal_retenciones - total_adelanto) //27/08/2010
if (dife_abs > 0.009) // 27/08/2010
 {
	globals.gMensaje="No coincide el total del adelanto con los valores comprobantes con los valores ingresados y las retenciones calculadas"
	globals.gMensajes()
	return false; 
 }  /*  // 23/11/2010
 else
 {
	globals.gMensaje='diferencia: ' + dife_abs
	globals.gMensajes()
 } */ // 23/11/2010
	//// buscar numeracion de adelantos a fleteros   codigo=5  fijo???
	var fs_nro_op = databaseManager.getFoundSet(controller.getServerName(),'numeracion_pr')
	fs_nro_op.loadAllRecords()
	fs_nro_op.find()
	fs_nro_op.sucursal=sucursal
	fs_nro_op.letra=letra
	fs_nro_op.cod_comprobante=5   //fijo igual que en recibos ???????
	var found=fs_nro_op.search()
	if (found != 1)
     {	
	   globals.gMensaje = 'Sucursal o Tipo de comprobante incorrectos al buscar numeracion'
	   globals.gMensajes();
	   return false;  //05/10/2010
     }
     else
     {	
	  fs_nro_op.setSelectedIndex(1)
	  // 05/10/2010 ==================================================
	  	var nro_aux= fs_nro_op.ultimo_numero + 1  
	  	codigo_movimiento=5
		globals.duplicacion_op_cabecera(letra,sucursal,nro_aux,codigo_movimiento)
		if (globals.gfilas!=0)  // si es cero, la factura no existe
		{ // ya existe , lo rechaza
			globals.gMensaje = 'Ya existe Adelanto a fletero ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_aux,'00000000');
			globals.gMensajes();
			return false;
		}
     } 
	// 05/10/2010 ==================================================
	////////////////////27/07/2010 por cada valor ingresado genera 1 ctacte_pr
	  fs_nro_op.ultimo_numero = fs_nro_op.ultimo_numero + 1 

	 ////guardar mas datos de op-cabecera  // es la tabla del form
      nro_comprobante=fs_nro_op.ultimo_numero
      codigo_movimiento=5 
      //importe=globals.gtotal_valores   // 26/08/2010
      //importe=globals.gtotal_valores+globals.gtotal_retenciones;  // 26/08/2010
      importe = globals.operacion(globals.gtotal_valores,"+",globals.gtotal_retenciones)  //28/10/2010
      importe_en_letras=globals.nro_a_letra(importe); //06/07/2010
      total_valores=globals.gtotal_valores;        // 30/06/2010
      total_retenciones=globals.gtotal_retenciones;   // 30/06/2010 y 01/07/2010
      total_comprobantes=globals.gtotal_comprob ;  // 30/06/2010
      /* se corrio dentro del for de op_detalle: se genera 1 ctacte_pr por cada valor
     //// grabar el pago en ctacte  // desde la relacion op_cabecera-proveedor + proveedor-ctacte
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()      
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provedor_id=proveedor_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=nro_comprobante
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=5 // fijo????  
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=null
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=importe
		// la provincia de debe tomar de la tabla de ciudades= no está en proveedores
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id=op_cabecera_to_proveedor.proveedor_to_ciudades.provincia_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_cancelado=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=importe
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=importe  //neto=importe?
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=0  // iva=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0     */
	  concepto=fTexto; //  15/12/2010 nuevo campo en op_cabecera
	  
	//// grabar cyb  por cada detalle  y cheques   // 27/07/2010 tambien ctacte
	//var found=op_cabecera_to_op_detalle.getSize() // para ver cuantos hay
	for (var i = 1 ; i <= op_cabecera_to_op_detalle.getSize(); i++)
    {
		op_cabecera_to_op_detalle.setSelectedIndex(i)
		
///////// 27/07/2010	desde     genera un mov de ctacte por cada valor ingresado
	 //// grabar el pago en ctacte   
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()      
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provedor_id=proveedor_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=nro_comprobante
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=5 // fijo????  
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=null
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=op_cabecera_to_op_detalle.importe
		// la provincia de debe tomar de la tabla de ciudades= no está en proveedores
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id=op_cabecera_to_proveedor.proveedor_to_ciudades.provincia_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_cancelado=0  // 27/07/2010  está en uso este campo??????????????????????????????????????
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=op_cabecera_to_op_detalle.importe
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=op_cabecera_to_op_detalle.importe  //neto=importe?
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=0  // iva=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0
		if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==0)
			var texto = 'Efectivo';
		else
			var texto = 'Cheque Nº ' + op_cabecera_to_op_detalle.cheque_nro +  ' - Vto: ' + utils.dateFormat(op_cabecera_to_op_detalle.fecha_pago, 'dd-MM-yyyy');
		
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.concepto = texto + ' - ' + fTexto
///////// 27/07/2010 hasta
		
		//================================================
		// 27/08/2010  analizar si lo sig. que está en opago_1 con fecha 23/7/2010 se debe poner aqui tambien
		// habilitar = porque tambien está en opago_1  y se necesita para dar baja de adelantos
		ctacte_pr_id=op_cabecera_to_proveedor.proveedor_to_ctacte_pr.ctacte_pr_id  //23/07/2010 // 15/10/2010 habilitado
		//================================================
		
    //// grabar cheques   si es un cheque    
	if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1)	
	{// es cheque
		if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio==1)	
		{// es propio	
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.newRecord()
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.banco_id=op_cabecera_to_op_detalle.banco_id // ???
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.banco_sucursal=op_cabecera_to_op_detalle.banco_sucursal //???
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.boleta_dep=null
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.cheque_nro=op_cabecera_to_op_detalle.cheque_nro
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.cuentas_cyb_id=op_cabecera_to_op_detalle.cuentas_cyb_id
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.estado=globals.zconf_chq_emitido		
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.fecha_emision=op_cabecera_to_op_detalle.fecha_emision_chq
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.fecha_entrega=fecha
		if (op_cabecera_to_op_detalle.fecha_pago==null)
			{
				op_cabecera_to_op_detalle.fecha_pago=op_cabecera_to_op_detalle.fecha_emision_chq
			}
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.fecha_pago=op_cabecera_to_op_detalle.fecha_pago
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.importe=op_cabecera_to_op_detalle.importe
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.lugar_emision=op_cabecera_to_op_detalle.lugar_emision // ???
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.marca_acredit=0
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.moneda_id=op_cabecera_to_op_detalle.moneda_id
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.titular=op_cabecera_to_op_detalle.titular
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.titular_cuit=op_cabecera_to_op_detalle.titular_cuit
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.titular_direccion=op_cabecera_to_op_detalle.titular_direccion
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.valor_id=op_cabecera_to_op_detalle.valor_id
		op_cabecera_to_op_detalle.cheque_id=0
		}// fin es propio
	 }// fin es cheque
	
    //// grabar movin_cyb para todos los valores
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.newRecord();
	if(op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1)
	{//es cheque
		// empieza versión original reemplazada 23-05-2012
		//if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio==1) //es propio
		//op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=0
		//else // es terceros
		//op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=forms.opago_2.op_detalle_to_cheques_id.cheque_id;
		// termina versión original reemplazada 23-05-2012
		// empieza nueva versión 23-05-2012
		// este programa de adelantos se usa en gral con cheques propios
		if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio==1) //es propio
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=op_cabecera_to_op_detalle.op_detalle_id_to_cheques.cheque_id; //??? comprobar  //13/04/2010 este si funciona??????????
		else // es terceros
		{
		//op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=forms.opago_2.op_detalle_to_cheques_id.cheque_id; //01/07/2010
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=op_cabecera_to_op_detalle.op_detalle_to_cheques_id.cheque_id; //01/07/2010
		}
		// termina nueva versión 23-05-2012
	}
	else
	{// es efectivo
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=null;
	}
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cod_movim=globals.zconf_cyb_cod_movim_egreso;     //1=Ingreso 2=Egreso ver globales
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cuentas_cyb_id=op_cabecera_to_op_detalle.cuentas_cyb_id;
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.empresa_id=proveedor_id;   // cabecera
	//01/07/2010  desde
	if ((op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1) &&
		(op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio==1) &&
		(op_cabecera_to_op_detalle.op_detalle_to_valores.es_ch_difer==1)) //es cheque propio diferido
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.fecha_movim=op_cabecera_to_op_detalle.fecha_pago;         // cabecera
		else  //01/07/2010 hasta
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.fecha_movim=fecha;         // cabecera
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.importe=op_cabecera_to_op_detalle.importe;
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.imputacion_id=globals.zconf_cyb_imputacion_pago_proveed; // 1=cobranza de clientes 2= Pago a proveedores tabla cod_imput
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.valor_id=op_cabecera_to_op_detalle.valor_id;
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.concepto="Adelanto Fletero: " + nro_comprobante + ' - ' + op_cabecera_to_proveedor.razon_social //21/04/2010 y 27/08/2010
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.marca_conciliacion=0  //26/04/2010
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.fecha_conciliacion=null  //26/04/2010
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.referencia=' '  //26/04/2010
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.apertura_id=op_cabecera_to_op_detalle.op_detalle_to_cuentas_cyb.apertura_id
	if((op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1) ||   (op_cabecera_to_op_detalle.op_detalle_to_valores.usa_cta_bco==1)) //26/04/2010
		{
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.referencia=op_cabecera_to_op_detalle.cheque_nro;  //26/04/2010
		}
	var x=1; // para para debugger
	
	//// 27/05/2010//////////////////////////////////////////////////////// agregado 27/08/2010
	//// descontar efectivo del saldo de caja
	if (op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.movim_cyb_to_cuentas_cyb.cuentas_tipo==0) // es cuenta caja
	{
	if(op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==0 && 
		op_cabecera_to_op_detalle.op_detalle_to_valores.usa_cta_bco==0)  // solo efectivo=aqui no se permite cheque de tercero
			op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.movim_cyb_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_efectivo-=op_cabecera_to_op_detalle.importe;
	}
	//// 27/05/2010 hasta ////////////////////////////////////////////////////////
	
	
    } // cierra el for
	
    //===================================================
    //  desde 26/08/2010
   	var nombreform='opago_1_copy' //27/08/2010   por ahora fijo hasta verlo con Andy el lunes 30/8/2010  !!!!!!!!!    
    var estado=globals.retenciones_final(nombreform,new Date(),proveedor_id,globals.total_adelanto,5,nro_comprobante,globals.greten[0],globals.greten[1]);
    //var estado=globals.retenciones_final(event,new Date(),proveedor_id,globals.total_adelanto,5,nro_comprobante,globals.greten[0],globals.greten[1]);
    
//// grabar retenciones  en op_retenciones 
    ////// grabar reten. ganancias 
    if (globals.greten_ganan !=0 && globals.greten_ganan !=null) // 27/08/2010
    {
    	////// grabar reten. ganancias en op_retenciones
    	op_cabecera_to_op_retenciones.newRecord();
		op_cabecera_to_op_retenciones.retenciones_id=2  // fijo
		if (op_cabecera_to_reten_certificados.gan_nro==null)
		{
			op_cabecera_to_reten_certificados.gan_nro=0
		}
		op_cabecera_to_op_retenciones.certificado_nro=op_cabecera_to_reten_certificados.gan_nro
    	op_cabecera_to_op_retenciones.importe=globals.greten_ganan
    	////// grabar reten. ganancias en ctacte_pr
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()      
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provedor_id=proveedor_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=op_cabecera_to_reten_certificados.gan_nro
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=14 // fijo  
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra  
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=null
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=globals.greten_ganan;  	
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id=op_cabecera_to_proveedor.proveedor_to_ciudades.provincia_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=globals.greten_ganan
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=globals.greten_ganan  //neto=importe?
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=0  // iva=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.concepto=    //01/09/2010
		"Ret.Ganancias Certif. Nro.: " + utils.numberFormat(op_cabecera_to_reten_certificados.gan_nro,"###,##0")
		+ ' Adelanto Fletero Nro.: ' + nro_comprobante
    }
    ////// grabar reten. iva 
    if (globals.greten_iva !=0 && globals.greten_iva !=null)
    {
    	////// grabar reten. iva en op_retenciones    	
    	op_cabecera_to_op_retenciones.newRecord();	
		op_cabecera_to_op_retenciones.retenciones_id=1  // fijo
		if (op_cabecera_to_reten_certificados.iva_nro==null)
		{
			op_cabecera_to_reten_certificados.iva_nro=0
		}
		op_cabecera_to_op_retenciones.certificado_nro=op_cabecera_to_reten_certificados.iva_nro
    	op_cabecera_to_op_retenciones.importe=globals.greten_iva
    	////// grabar reten. iva en ctacte_pr
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()      
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provedor_id=proveedor_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=op_cabecera_to_reten_certificados.iva_nro
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=13 // fijo  
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=null
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=globals.greten_iva; 	
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id=op_cabecera_to_proveedor.proveedor_to_ciudades.provincia_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=globals.greten_iva
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=globals.greten_iva  //neto=importe?
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=0  // iva=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.concepto=    //01/09/2010
		"Ret.IVA Certif. Nro.: " + utils.numberFormat(op_cabecera_to_reten_certificados.iva_nro,"###,##0")
		+ ' Adelanto Fletero Nro.: ' + nro_comprobante
    }
    // hasta  23/08/2010 ///////////////////////////////////////////////
    //===================================================
    
	//// grabar todo
	var estado=databaseManager.saveData()
	if (estado==true)
	{
	elements.confirmar.enabled=false
	databaseManager.refreshRecordFromDatabase(foundset, 0) // deja el indice correctamente
	databaseManager.refreshRecordFromDatabase(foundset.op_cabecera_to_op_detalle,-1) // refresca detalle
	databaseManager.refreshRecordFromDatabase(foundset.op_cabecera_to_op_retenciones,-1) // refresca detalle retenciones
	databaseManager.refreshRecordFromDatabase(foundset.op_cabecera_to_ctacte_pr,0)  // refresca ctacte_pr por el pago
	databaseManager.refreshRecordFromDatabase(foundset.op_cabecera_to_op_retenciones.op_retenciones_to_ctacte_pr,0)	// refresca ctacte_pr por las retenciones
	databaseManager.refreshRecordFromDatabase(op_cabecera_to_reten_certificados,0)  // refresca reten_certificados
	/*
	globals.gMensaje ='Adelanto a Fleteros '  + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_comprobante,'00000000') +  ' Generado correctamente' + '- Imprime:'
	var resp=.dialogs.showQuestionDialog('Adelanto a Fleteros',  globals.gMensaje,  "Si", "No" )
	if (resp == 'Si')
	{
		es_preview=1
		forms.opago_cabecera_imp_copy.controller.showPrintPreview(true)
		var parar=1
	}
	else // 27/07/2010
	{// 27/07/2010
	Iniciar()
	}// 27/07/2010
	*/
	//  nuevo 7/1/2010  desde
	application.showFormInDialog(forms.opago_cabecera_imp_0,-1,-1,1000,700,'Impresion Adelentos a Fleteros y Retenciones',true,false,'imp_op',true);  
    Iniciar()  	
    //  nuevo 7/1/2010  hasta
	}
	else
	{
	elements.confirmar.enabled=false  // 06/01/2011  ver si arregla con este
	globals.gMensaje ='Adelanto a Fleteros No fue generado '
	globals.DIALOGS.showInfoDialog('Generador de Adelanto a Fleteros',  globals.gMensaje,  "OK")
	cancelar()
	}
	//  }  anulado 05/10/2010 corrido mas arriba luego de buscar numeracion
 
 var f= 1  // parar debug
}

/**
 *
 * @properties={typeid:24,uuid:"B9712B05-4909-4856-A867-08C109C5F6D9"}
 */
function eliminar_renglon() 
{
var found = op_cabecera_to_op_detalle.getSize()
	if (found==0)
	{
	    globals.gtotal_valores=0
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		op_cabecera_to_op_detalle.deleteRecord()
		totales_valores()
	}
	}
elements.confirmar.enabled=false; // 23/08/2010
}

/**
 *
 * @properties={typeid:24,uuid:"A0C84FF7-2BA7-4248-9ECA-F7B5427AE1D6"}
 */
function salir_rec() 
{
	if (globals.gEs_preview == 0) //27/07/2010 //11/01/2012
	{//27/07/2010
 	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')
	if (resp == 'Si')
	{
		databaseManager.rollbackEditedRecords()
		databaseManager.setAutoSave(true)
		return true   //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
		//databaseManager.setAutoSave(true)
	}
 	else
	{
		return false //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
	}
	} //27/07/2010
 	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"FF27D9F2-922B-4D50-802E-5EF246D89F63"}
 */
function totalizar() 
{
	totales_valores();
	retencion_parcial();
}

/**
 *
 * @properties={typeid:24,uuid:"0CF7A13F-7FD6-4C06-9337-AC3184E2F514"}
 */
function Iniciar() 
{
	databaseManager.setAutoSave(false); 
	controller.newRecord(false);
	fecha = new Date();  
	letra="X ";     
	globals.gtotal_comprob=0;
	globals.gtotal_valores=0;
	globals.gtotal_saldo=0;
	globals.gEs_preview = 0; //11/01/2012
	globals.gtotal_retenciones=0; //26/08/2010
	elements.confirmar.enabled=false; // 26/08/2010  
	total_adelanto=0; // 26/08/2010  
	globals.greten_ganan=0;// 26/08/2010
	globals.greten_iva=0; // 26/08/2010
	fTexto=null  // 07/01/2011
}

/**
 *
 * @properties={typeid:24,uuid:"F6516DFE-A750-4975-B298-E5CB24007900"}
 */
function totales_valores() 
{
	globals.gtotal_valores=0
	for ( var i = 1 ; i <= op_cabecera_to_op_detalle.getSize(); i++ )
	{
		op_cabecera_to_op_detalle.setSelectedIndex(i)
		//globals.gtotal_valores+= op_cabecera_to_op_detalle.importe 
		globals.gtotal_valores = globals.operacion(globals.gtotal_valores,"+",op_cabecera_to_op_detalle.importe) //28/10/2010
		var estado=ver_saldo()   //29/07/2010   desde    // agregado 27/8/2010
		if (estado==false) 
		{
			globals.gtotal_valores=0; 
			return false;       
		}   //29/07/2010   hasta
	}
	return true;     //27/08/2010
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"79B8D0F3-52E4-4726-A503-90C91A091F48"}
 */
function elige_proveedor() 
{
	globals.gtotal_saldo=0
	globals.gtotal_valores=0
	globals.gtotal_comprob=0
	globals.gtotal_retenciones=0; //26/08/2010
	// salvar_proveedor: porque perdia en codigo de proveedor en el newRecord
	var salvar_proveedor=proveedor_id
	// rollback: porque al cambiar de proveedor dejaba los movs. del anterior
	databaseManager.rollbackEditedRecords()
	// newRecord: porque al traia datos de la ultima op de ese proveedor en vez 
	//de crear uno
	controller.newRecord(false);
	// las 2 sig 31/3/2010
	fecha = new Date();  
	letra="X "; 
	proveedor_id=salvar_proveedor
	// para la relacion con choferes
	globals.fletero_id=proveedor_id
	globals.marca_primer_find = 0
	globals.marca_primer_find_1 = 0

}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"9C27FB4A-9940-40D8-942C-7419512EB9DE"}
 */
function elige_chofer(oldValue, newValue, event) 
{
	globals.gtotal_saldo=0
	globals.gtotal_valores=0
	globals.gtotal_comprob=0
	globals.gtotal_retenciones=0; //26/08/2010
	total_adelanto=0; //26/08/2010
	// salvar_chofer: 
	var salvar_chofer=chofer_id
	// rollback: porque al cambiar de proveedor dejaba los movs. del anterior
	databaseManager.rollbackEditedRecords()
	// newRecord: porque al traia datos de la ultima op de ese chofer en vez 
	//de crear uno
	controller.newRecord(false);
	// las 2 sig 31/3/2010
	fecha = new Date();  
	letra="X "; 
	// anulado proveedor_id=salvar_proveedor
	chofer_id=salvar_chofer
	// define fletero
	proveedor_id=op_cabecera_to_choferes.proveedor_id
	globals.fletero_id=proveedor_id
	globals.marca_primer_find = 0
	globals.marca_primer_find_1 = 0
	globals.greten_ganan=0;// 26/08/2010
	globals.greten_iva=0; // 26/08/2010
	return true;
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"E1791CFC-D3E0-4A1D-9BA5-6451B3976A0A"}
 */
function retencion_parcial(event)  // 26/08/2010
{
var aux_compara = 0
if(proveedor_id==null)
	{
		globals.gMensaje="Debe informar Fletero"  // ?
		globals.gMensajes()
		elements.proveedor_id.requestFocus();
		return;
	}	
if(chofer_id==null)
	{
		globals.gMensaje="Debe informar Chofer"  // ?
		globals.gMensajes()
		elements.proveedor_id.requestFocus();
		return;
	}	

if (total_adelanto==0)
	{
		globals.gMensaje='Debe ingresar el importe total del adelanto';
		globals.gMensajes();
		elements.total_adelanto.requestFocus();
		return;
	}
//aux_compara= Math.abs(total_adelanto - globals.gtotal_valores) //28/10/2010 precisión
if(total_adelanto < globals.gtotal_valores) //31/10/2010 restaurado
	{
		globals.gMensaje='El importe total del adelanto $' + total_adelanto + ' no puede ser menor que los valores ingresados $' +  globals.gtotal_valores;
		globals.gMensajes()
		elements.total_adelanto.requestFocus();
		return;
	}
	
// llama a rutina de calculo previo de retenciones		
globals.greten=globals.retenciones_previo(fecha,proveedor_id,total_adelanto);

// devuelve valores
globals.greten_ganan = globals.greten[0][7];  // elemento 7 tiene el importe ret ganancias
globals.greten_ganan = globals.operacion(globals.greten_ganan,"+",0) //01/03/2012 redondeo
globals.greten_iva = globals.greten[1][3];  // elemento 3 tiene el importe ret. iva
globals.greten_iva = globals.operacion(globals.greten_iva,"+",0) //01/03/2012 redondeo
globals.gtotal_retenciones = globals.operacion(globals.greten_ganan,"+",globals.greten_iva)  //01/03/2012 redondeo
// compara totales

if (globals.gtotal_valores !=0)  // ingresó valores 
{
	//if (globals.gtotal_valores != (total_adelanto - globals.greten_ganan - globals.greten_iva))
	aux_compara= Math.abs( total_adelanto - globals.gtotal_valores - globals.greten_ganan - globals.greten_iva) // 01/09/2010 x redondeo
	if (aux_compara > 0.009) // 01/09/2010 x redondeo
		{
		globals.gMensaje='El total de valores debe ser $' + (total_adelanto - globals.greten_ganan - globals.greten_iva) + ' que es igual al importe total del adelanto $' + total_adelanto + ' menos las retenciones $' + (globals.greten_ganan + globals.greten_iva);
		globals.gMensajes();
		elements.confirmar.enabled=false;
		return;
		}
	else
		{
			elements.confirmar.enabled=true;
		}
}  
/*
else // 30/08/2010
{
	globals.gMensaje='Debe ingresar valores';
	globals.gMensajes();
	return;
}  */
var t=1;
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"8834F088-4ED9-4E8D-8E64-60E5379E2E09"}
 */
function validar_importe(oldValue, newValue, event)  //26/08/2010 
{
var aux_adelanto=globals.retenciones_inverso(fecha,proveedor_id,total_adelanto); //07/09/2010
if (total_adelanto!=aux_adelanto)
{
	globals.gMensaje='El total del adelanto con retenciones es de $' + aux_adelanto //07/09/2010
	globals.gMensajes();   //07/09/2010
	total_adelanto=aux_adelanto;  //07/09/2010
}

globals.greten_ganan=0; 
globals.greten_iva=0;  
globals.gtotal_retenciones=0;
retencion_parcial();
}

/**
 *
 * @properties={typeid:24,uuid:"6FA192A2-2B5D-4CE1-862F-9A2A662754B1"}
 */
function validar_fecha_pago()  // 26/08/2010
{
for (var i = 1 ; i <= op_cabecera_to_op_detalle.getSize(); i++)
{
//// recorrer cheques    
	op_cabecera_to_op_detalle.setSelectedIndex(i)
	if (op_cabecera_to_op_detalle.cuentas_cyb_id==null) //05/10/2010
		{
			globals.gMensaje='Debe ingresar cuenta de banco';
			globals.gMensajes();
			return false;
		}
	if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1)	
	{// es cheque
		if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio==1)	
		{// es propio	
			if (op_cabecera_to_op_detalle.fecha_pago==null)
			{ 
				if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_ch_difer!=1)// no es diferido
					op_cabecera_to_op_detalle.fecha_pago=new Date;	
				else
				{
					globals.gMensaje='Debe ingresar fecha de pago para cheque diferido nro. ' + op_cabecera_to_op_detalle.cheque_nro;
					globals.gMensajes();
					return false;
				}
			}
		}
		if (op_cabecera_to_op_detalle.cheque_nro==null) //30/08/2010
		{
			globals.gMensaje='Debe ingresar nro. de cheque';
			globals.gMensajes();
			return false;
		}
	}
}
}

/**
 *
 * @properties={typeid:24,uuid:"0132A7DD-B53B-4149-AA61-B683BDC7E0A1"}
 */
function ver_saldo() // 27/08/2010
{
// tomado de opago_2  29/07/2010  se arego relacion.importe y relacion.cuenta_cyb_id
// solo buscar saldo de caja cuando es efectivo // 20/07/2010

if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1) // es cheque propio no resta de caja
		return true;    
	
// es efectivo: debe chequear saldo    
var fs_saldos=databaseManager.getFoundSet(controller.getServerName(),'saldos_caja')
var estado=fs_saldos.find()
if (estado==true)
	{
	if (op_cabecera_to_op_detalle.cuentas_cyb_id==null) // 05/10/2010
		{
		globals.gMensaje='Debe ingresar Cuenta';
		globals.gMensajes();
		return false;	
		}
	fs_saldos.cuentas_cyb_id=op_cabecera_to_op_detalle.cuentas_cyb_id;
	fs_saldos.moneda_id=1; // 15/06/2010 - SE ASUME moneda default - debería ser una global
	var found=fs_saldos.search();
	if (found==1)  
	{ // ver saldo existente 
		fs_saldos.setSelectedIndex(1);
    	if (op_cabecera_to_op_detalle.importe>fs_saldos.saldo_efectivo)
    	{ // importe supera lo existente en caja
    		globals.gMensaje='Efectivo a pagar de $' + op_cabecera_to_op_detalle.importe + ' supera el saldo de la caja $' + fs_saldos.saldo_efectivo;
			globals.gMensajes();
			//elements.importe.requestFocus(true); //28/07/2010
			return false;
    	}
    	else
    		return true;
    }
    else
	{
    	globals.gMensaje="Error : no existe saldo de caja";
		globals.gMensajes();
    	return false;
	}
	}
else
{
   	globals.gMensaje="Error : en find saldo de caja"; //14/12/2010
	globals.gMensajes(); //14/12/2010
	databaseManager.rollbackEditedRecords() //14/12/2010 
	Iniciar(); //14/12/2010
	return false;
} 
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"DF73D982-FE28-47DC-886E-BEA921F09BD6"}
 */
function onDataChange_porc_iva(oldValue, newValue, event) {
	// porcentaje de IVA a detraer para calcular el imponible de Ganancias y de IVA
	retencion_parcial();
	return true
}
